ВГОРУ

SQL FULL OUTER JOIN Keyword

SQL FULL OUTER JOIN Опис

Ключове слово FULL OUTER JOIN повертає всі записи, якщо є відповідність у лівих (table1) або правих (table2) записах таблиці.


Інструкції FULL OUTER JOIN та FULL JOIN є однаковими.

FULL OUTER JOIN Syntax

SELECT column_name(s)
FROM table1
FULL OUTER JOIN table2
ON table1.column_name = table2.column_name
WHERE condition

SQL FULL JOIN

Демонстраційна база даних

У цьому довіднику ми будемо використовувати відомий приклад бази даних "Northwind".

Нижче наведено вибірку з таблиці "Customers" ("Клієнти"):

CustomerIDCustomerNameContactNameAddressCityPostalCodeCountry
1Alfreds FutterkisteMaria AndersObere Str. 57Berlin12209Germany
2Ana Trujillo Emparedados y heladosAna TrujilloAvda. de la Constitución 2222México D.F.5021Mexico
3Antonio Moreno TaqueríaAntonio MorenoMataderos 2312México D.F.5023Mexico
4Around the HornThomas Hardy120 Hanover Sq.LondonWA1 1DPUK
5Berglunds snabbköpChristina BerglundBerguvsvägen 8LuleåS-958 22Sweden

Та вибірку з таблиці "Orders" ("Замовлення"):

ProductIDOrderIDCustomerIDEmployeeIDOrderDateShipperID
1102489051996-07-043
2102498161996-07-051
3102503441996-07-082
4102518431996-07-081
5102527641996-07-092

SQL FULL OUTER JOIN Приклад

Наступна SQL-інструкція вибирає всіх клієнтів і всі замовлення:

Run SQLSELECT Customers.CustomerName, Orders.OrderID 
FROM Customers 
FULL OUTER JOIN Orders ON Customers.CustomerID = Orders.CustomerID 
ORDER BY Customers.CustomerName

Вибірка з набору результатів може виглядати так:

CustomerName OrderID
Null 10309
Null 10310
Alfreds Futterkiste Null
Ana Trujillo Emparedados y helados 10308
Antonio Moreno Taquería Null
Ключове слово FULL OUTER JOIN повертає всі відповідні записи з обох таблиць незалежно від того, відповідає інша таблиця чи ні. Отже, якщо є рядки в "Customers" ("Клієнти"), які не мають збігів у "Orders" ("Замовлення"), або якщо є рядки в "Замовленнях", які не мають збігів у "Клієнтах", ці рядки також будуть перелічені.